package com.kingint.mbg.ser.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kingint.mbg.dto.BackQueryParam;
import com.kingint.mbg.ser.entity.SerSendMessage;
import com.kingint.mbg.ser.entity.SerWorkOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 相关工单总表 Mapper 接口
 * </p>
 *
 * @author wxh
 * @since 2021-01-08
 */
public interface SerWorkOrderMapper extends BaseMapper<SerWorkOrder> {

    /**
     * 分页查询对应的工单信息
     * @param page
     * @param backQueryParam
     * @return
     */
    IPage<SerWorkOrder> getAllWorkList(IPage<SerWorkOrder> page,@Param("query") BackQueryParam backQueryParam);


    /**
     * 分页查询待接单的工单信息
     * @param page
     * @param backQueryParam
     * @return
     */
    IPage<SerWorkOrder> getWaitReceiveWorkList(IPage<SerWorkOrder> page,@Param("query") BackQueryParam backQueryParam);

    /**
     * 查询群发通知相关信息
     * @param backQueryParam
     * @return
     */
    List<SerSendMessage> getSendMessageList(@Param("query") BackQueryParam backQueryParam);

    /**
     * 获取待审核相关的工单（审核人审核相关信息）
     * @param page
     * @param backQueryParam
     * @return
     */

    IPage<SerWorkOrder> getWaitHandleWorkList(IPage<SerWorkOrder> page,@Param("query") BackQueryParam backQueryParam);

    /**
     * 获取待验收的数量
     * @param backQueryParam
     * @return
     */
    Integer getWaitHandleNumber(@Param("query") BackQueryParam backQueryParam);

    /**
     * 获取待处理数量,完成数(今日完成，本周完成)
     * @param backQueryParam
     * @return
     */
    Integer getProcessingNumber(@Param("query") BackQueryParam backQueryParam);


    /**
     * 根据对应的状态查询接单数量
     * @param backQueryParam
     * @return
     */
    Integer getReceiveNum(@Param("query") BackQueryParam backQueryParam);

    /**
     * 获取完成的工单数量
     * @param backQueryParam
     * @return
     */
    Integer getFinishNum(@Param("query") BackQueryParam backQueryParam);


    /**
     * 获取被更换的工单数量
     * @param backQueryParam
     * @return
     */
    Integer getNotFinishNum(@Param("query") BackQueryParam backQueryParam);


}
